package com.atm.service;

import com.atm.pojo.RunMessage;
import com.atm.pojo.User;

import java.util.List;

public interface UserService {
    /**
     * 查询所用用户信息
     * @return 所有用户
     */
    List<User> findAllUsers();

    /**
     * 模糊查询
     * @param name 名字
     * @return 模糊查询黁结果
     */
    List<User> queryUsers(String name);

    /**
     * 根基银行卡查询信息
     * @param icno 银行卡信息
     */
    User getUserByIcno(String icno);

    /**
     *  更新用户
     * @param user 用户
     * @return 是否更新成功
     */
    boolean updateUser(User user);

    /**
     * 根据卡号删除用户
     * @param icno 卡号
     * @return 是否删除成功
     */
    boolean deleteUser(String icno);

    /**
     * 添加用户
     * @param user 用户信息
     * @return 是否添加成功
     */
    boolean addUser(User user);

    /**
     *  查找用户
     * @param icno 卡号
     * @param pwd 密码
     * @return 结果
     */
    User findUserByNameAndPwd(String icno, String pwd);

    /**
     * 更新密码
     * @param icno 卡号
     * @param newpwd 新密码
     * @return 结果
     */
    boolean updateUserPwd(String icno,String newpwd);

    /**
     * 获取金额
     * @param icno 卡号
     * @return 新密码
     */
    double getUserBalance(String icno);

    /**
     * 添加金额
     * @param money 金额
     * @param icno  卡号
     * @return 结果
     */
    boolean saveMoney(int money,String icno);

    /**
     * 取钱
     * @param money 金额
     * @param icno 卡号
     * @return 结果
     */
    boolean FetchMoney(int money, String icno);

    /**
     * 转账
     * @param transferIn 转出账户
     * @param icno 转入账户
     * @param money 金额
     * @return 结果
     */
    boolean transfer(String transferIn, String icno, int money);

    /**
     * 获取email
     * @param icno 卡号
     * @return 邮箱地址
     */
    String getEmailByIcno(String icno);

}
